// src/products.js
import request from "@/utils/request";

// 分页查询商品
// params: { pageNum, pageSize, name?, status?, storeId?, categoryId?, brandId? }
export function pageProducts(params) {
  return request.get("/admin/products/page", { params });
}

// 获取商品详情
export function getProductDetail(id) {
  return request.get(`/admin/products/${id}`);
}

// 新增商品
export function addProduct(data) {
  return request.post("/admin/products", data);
}

// 更新商品
export function updateProduct(data) {
  return request.put("/admin/products", data);
}

// 删除商品（批量）
// ids: array of IDs
export function deleteProducts(ids) {
  // 后端 DELETE 接口：@DeleteMapping, 接受 ?ids=1&ids=2 ... 或 ids=1,2?
  // 根据后端实现，如果需要 ?ids=1,2,3，则： { params: { ids: ids.join(",") } }
  // 假设后端支持 ?ids=1&ids=2 的形式：
  return request.delete("/admin/products", { params: { ids } });
}

// 修改状态
export function updateProductStatus(id, status) {
  return request.put(`/admin/products/${id}/status/${status}`);
}

// 辅助：获取门店列表（用于筛选/表单）
// src/stores.js 中可能已有 pageStores
export function pageStores(params) {
  return request.get("/admin/stores", { params });
}

// 获取分类树
export function categoryTree() {
  return request.get("/admin/categories/tree");
}

// 分页查询品牌（用于筛选/表单）
export function pageBrands(params) {
  return request.get("/admin/product-brands/page", { params });
}

// 上传文件（图片）
// 直接调用通用上传接口
export function uploadFile(formData) {
  // formData: FormData，带 file 字段
  return request.post("/common/admin/upload", formData, {
    headers: { "Content-Type": "multipart/form-data" },
  });
}

export async function downloadProductTemplate() {
  const res = await request({
    url: '/admin/products/template',
    method: 'get',
    responseType: 'blob',
  });
  return res;
}
export async function exportProducts({ params, responseType }) {
  const res = await request({
    url: '/admin/products/export',
    method: 'get',
    params,
    responseType: 'blob',
  });
  return res;
}
export function importProducts(formData) {
  return request({
    url: '/admin/products/import',
    method: 'post',
    data: formData,
    headers: { 'Content-Type': 'multipart/form-data' },
  });
}

// 批量更新商品状态
export function batchUpdateStatus(data) {
  return request({
    url: '/admin/products/batch/status',
    method: 'put',
    data
  })
}
